不是,如果你不想在自己的電腦上安裝環境啟動 WordPress 也完全沒有問題,你可以跳過這一章節因為我們可以使用線上環境搭建測試/正式環境來使用,而僅需要用自己電腦上的瀏覽器管理 WordPress。
但我計畫以由淺到深,由自己的電腦延伸到雲端伺服器的做法來讓讀者能夠盡可能全面的了解 WordPress 的用途與概念並且在初期盡可能減少知識點,所以才先從自己的電腦上啟動 WordPress。
由於 Windows、Linux、Mac 這三套作業系統各自有不同的開發方法與環境設定的處理,而且隨著時間與版本更替,細節的設定可能也會有大差異,而我希望這一個文章可以讓不同作業系統的使用者參考,盡可能不被版本更新而影響步驟,因此我選擇使用 Docker 來搭建 WordPress 的環境。
我們會需要在電腦上啟用 Docker 這服務才能作接下來的動作,而安裝 Docker 我認為有些偏離主題與稀釋讀者注意力因此不在此多介紹。
尚未準備好環境的讀者們請允許我幫朋友推書,我推薦去看這一篇優質的 Docker 系列文章 30 天與鯨魚先生做好朋友
其中的 Day02安裝 Docker 環境 有介紹如何安裝環境與有哪些線上的 Docker 可以使用,看不過癮的可以去找找該鐵人賽延伸的書籍 30天與 Docker 做好朋友:跟鯨魚先生一同探索開發者的大平台(iT邦幫忙鐵人賽系列書)
但就算不熟悉只要跟著文章內的指令與教學一步一步進行,也能達到我們的效果,如果對 Docker 有興趣可以透過推薦的文章與書籍來深入研究這項技術。
我們會使用到:
WordPress 的官方 DockerHub
MariaDB 的官方 DockerHub
MySQL 的官方 DockerHub
MySQL Arm 的 DockerHub
這裡要說明一下,MariaDB 不等於 MySQL。
MariaDB 是 MySQL 的開發團隊將 MySQL 賣出給甲骨文後自行開發的 MySQL 兼容資料庫,WordPress 由於 MariaDB 兼容 MySQL 的關係故可以直接使用 MariaDB 作為資料庫。
而之所以使用 MariaDB 作為開發環境是因為 MariaDB 原生支援在 Arm 架構上執行而 Arm 版本的 MySQL 我測試下來效能與穩定性略有問題,為了避免讀者在使用 Mac M系列 的 Arm 架構晶片時發生問題,因此採用 MariaDB 作為範例資料庫。
但官方的範例仍然是使用 MySQL,因此如果對 MariaDB 抱持存疑的話,可以在以下的教學中替換成使用 MySQL。
好!那讓我們先準備好一個資料夾,取名為 wordpress (這名字看你開心,高興就好)
這是一份使用最新版本的 WordPress、MariaDB 與附帶一個網頁管理資料庫的 Adminer 的開發大禮包,之所以會預設一個 Adminer 是因為我希望讀者在開發時也要能夠隨時觀察資料庫的資料變化,更全面的理解 WordPress。
如果你自己有了資料庫管理工具,可以直接移除 adminer 的區塊。
version: '3.8'
services:
wordpress:
image: wordpress
restart: always
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: ithelp!user
WORDPRESS_DB_PASSWORD: ithelp!pass
WORDPRESS_DB_NAME: ithelp!db
volumes:
- wordpress:/var/www/html
db:
image: mariadb
restart: always
environment:
MARIADB_DATABASE: ithelp!db
MARIADB_USER: ithelp!user
MARIADB_PASSWORD: ithelp!pass
MARIADB_ROOT_PASSWORD: ithelp!root!db
volumes:
- db:/var/lib/mariadb
adminer:
image: adminer
restart: always
ports:
- 8080:8080
volumes:
wordpress:
db:
來解釋一下相關參數與修改規則:
version: '3.8' 這意思是指定 Docker 使用什麼版本的規則解釋你的設定檔,不是你的設定檔自己的版本,因此這不能改,詳細可以看 Compose file version 3 reference。
WORDPRESS_DB_HOST 該參數是 WordPress 連接的資料庫網址,由於我們的啟動是在 Docker 內的預設網路,因此直接填服務名稱 db 就好。
WORDPRESS_DB_USER 該參數是 WordPress 連接資料庫的使用者,對應到 db 區塊的 MARIADB_USER。
WORDPRESS_DB_PASSWORD 該參數是 WordPress 連接資料庫的密碼,對應到 db 區塊的 MARIADB_PASSWORD。
WORDPRESS_DB_NAME 該參數是 WordPress 連接資料庫的資料庫名稱,對應到 db 區塊的 MARIADB_DATABASE。
MARIADB_ROOT_PASSWORD 該參數是資料庫本身的最高管理密碼對應到的帳號是 root,該組帳號就是最高管理權限了,因此需要妥善保管。
docker-compose up -d
執行後你會看到他開始抓 Docker Image 與啟動
接下來訪問你電腦的 80 port
http://127.0.0.1/
你看到這個畫面的話,恭喜你成功了~
讓我們輸入一下資訊,就可以順利安裝 WordPress 了
接下來訪問你電腦的 8080 port
http://127.0.0.1:8080/
你看到這個很有年代感的工程師風味畫面的話,恭喜你成功了~
在這頁面登入資料庫試試,依序輸入
帳號:ithelp!user
密碼:ithelp!pass
資料庫:ithelp!db
你看到這個畫面的話,你成功登入資料庫了,恭喜你!
我們可以在 http://127.0.0.1/wp-login.php 進行登入,輸入剛才安裝時設定的 WordPress 帳號密碼
我的是
帳號: admin
密碼: a)(E(LXxFh^5n%%Rs)
後台的網址會是: http://127.0.0.1/wp-admin/
前台的網址會是: http://127.0.0.1
我們在這一天完成了在電腦上透過 Docker 啟動 WordPress 並且使用了 Adminer 管理安裝資料庫。
如果你喜歡使用 MySQL,以下是補充給這類讀者的 docker-compose.yml
version: '3.8'
services:
wordpress:
image: wordpress
restart: always
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: ithelp!user
WORDPRESS_DB_PASSWORD: ithelp!pass
WORDPRESS_DB_NAME: ithelp!db
volumes:
- wordpress:/var/www/html
db:
image: mysql
restart: always
environment:
MYSQL_DATABASE: ithelp!db
MYSQL_USER: ithelp!user
MYSQL_PASSWORD: ithelp!pass
MYSQL_ROOT_PASSWORD: ithelp!root!db
volumes:
- db:/var/lib/mysql
adminer:
image: adminer
restart: always
ports:
- 8080:8080
volumes:
wordpress:
db:
明天會介紹使用線上服務搭建 WordPress,尚不會進到 WordPress 本身。
但僅會介紹單純架起來可供開發,而不會介紹到安全性、備份、網域這塊,目的是讓不想在本地啟動環境的讀者能夠搭建環境。